// pages/comment/comment.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 用于存储从数据库获取的标签数据
    tags: [],
    // 评分
    score: 0,
    // 选中复选框后的值
    selectButton: {},
    // 存储每个标签的点击次数
    tagClickCount: {},
    // 上传图片地址
    originFiles: [],
    gridConfig: {
      column: 4,
      width: 160,
      height: 160,
    },
    config: {
      count: 1,
    },
  },
  // 返回上一页
  onNavigate() {
    wx.navigateBack({
      delta: 1
    })
  },
  // 获取标签数据的方法
  fetchTags() {
    const that = this;
    wx.request({
      url: 'http://localhost/dev-api/keep/evaluateTag/list',
      method: 'GET',
      header: {
        'Authorization': getApp().globalData.authorization
      },
      success(resp) {
        if (resp.statusCode === 200) {
          // 假设服务器返回的数据是一个数组
          that.setData({
            tags: resp.data.rows
          });
          console.log(resp.data.rows)
        }
      },
      fail(error) {
        console.error('获取标签数据失败', error);
      }
    });
  },

  // 组件赋值
  onChangeScore(event) {
    this.setData({
      value: event.detail,
    });
  },
  // 处理按钮点击事件
  handleButtonClick: function (event) {
    const tagId = event.currentTarget.dataset.id;
    let selectButton = this.data.selectButton; // 从data中获取当前的selectButton状态
    if (selectButton[tagId]) {
      // 如果已经选中，则移除
      delete selectButton[tagId];
    } else {
      // 如果未选中，则添加到已选中列表
      selectButton[tagId] = true;
    }
    this.setData({
      selectButton: selectButton // 使用setData来更新数据
    });
  },

  // 判断按钮是否被选中
  isSelected: function (tagId) {
    return this.data.selectButton[tagId] !== undefined;
  },
  // 上传图片
  handleSuccess(e) {
    console.log('开始选择图片');
    if (this.data.originFiles.length >= 1) return;
    wx.chooseMedia({
      // 最多可以选择的图片张数
      count: 1,
      // 所选的图片的尺寸
      sizeType: ['original', 'compressed'],
      // 选择图片的来源
      sourceType: ['album', 'camera'],
      success: (resp) => {
        console.log('图片选择成功', resp.tempFiles);
        wx.showToast({
          title: '正在上传...',
          icon: 'loading',
          mask: true,
          duration: 2000
        });
        this.upImgs(resp.tempFiles[0].tempFilePath);
      },
      fail: function (resp) {
        console.log('图片选择失败');
      },
      complete: function (resp) {
        console.log('图片选择完成');
      }
    });
  },

  //文件上传
  upImgs(tempFilePath) {
    console.log('开始上传图片', tempFilePath);
    wx.uploadFile({
      url: `http://localhost:8080/common/upload`,
      // 小程序本地的路径
      filePath: tempFilePath,
      // 后台获取我们图片的key
      name: 'file',
      header: {
        authorization: getApp().globalData.authorization
      },
      // 额外的参数formData
      formData: {},
      success: resp => {
        console.log('图片上传成功', resp);
        if (resp.statusCode === 200) {
          const data = JSON.parse(resp.data);
          if (data.code == 200 && data.url) {
            // 假设返回的数据中包含图片URL
            const newFile = {
              path: tempFilePath, // 本地路径
              url: data.url, // OSS上的URL
            };
            // 更新页面数据
            this.setData({
              originFiles: this.data.originFiles.concat(newFile),
            });
          }
        }
      },
      fail: function (resp) {
        console.error('图片上传失败', resp);
      }
    });
  },
  handleRemove(e) {
    const {
      index
    } = e.detail;
    const {
      originFiles
    } = this.data;
    originFiles.splice(index, 1);
    this.setData({
      originFiles,
    });
  },
  handleClick(e) {
    console.log(e.detail.file);
  },

  // form表单提交
  commentSubmit: function (e) {
    const formDetail = e.detail;
    const userId = formDetail.value.userId || 1; // 使用默认值或表单值
    const evaluation = formDetail.value.textarea; // 假设评价内容绑定在 textarea 上
    const ePicture = this.data.originFiles.length > 0 ? this.data.originFiles[0].url : '';
    const teacherId = 1; // 教师 ID，根据实际情况获取
    const tScore = formDetail.value.score + ''; // 评分转换为字符串
    // 获取当前日期并格式化为 YYYY-MM-DD 格式
    const today = new Date();
    const time = `${today.getFullYear()}-${String(today.getMonth() + 1).padStart(2, '0')}-${String(today.getDate()).padStart(2, '0')}`;
    const tcId = 20001; // 团课 ID，根据实际情况获取
    const eSingle = 1; // 根据实际情况获取
    // 创建一个新对象来保存表单提交的数据
    const submitData = {
      userId: userId,
      evaluation: evaluation,
      ePicture: ePicture,
      teacherId: teacherId,
      tScore: tScore,
      time: time,
      tcId: tcId,
      eSingle: eSingle,
    };

    // 打印提交的数据
    console.log('提交的数据：', submitData);

    // 发送POST请求到服务器
    wx.request({
      url: 'http://localhost/dev-api/keep/evaluate', // 服务器接收 POST 请求的地址
      method: 'POST',
      header: {
        'Content-Type': 'application/json', // 告诉服务器我们发送的是 JSON 数据
        'Authorization': getApp().globalData.authorization // 认证信息
      },
      data: submitData, // 提交的数据
      success: function (response) {
        if (response.statusCode === 200) {
          console.log('数据提交成功', response.data);
          wx.navigateBack({
            delta: 1
          });
        } else {
          console.error('服务器返回状态码不是200', response);
        }
      },
      fail: function (error) {
        console.error('数据提交失败', error);
      }
    });

  },




  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.fetchTags();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})